package br.edu.infnet.avaliacao.model;

import javax.persistence.AttributeOverride;
import javax.persistence.AttributeOverrides;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

@Entity
@Table(name = "avaliacao_questao", catalog = "avaliacao")
public class AvaliacaoQuestao implements java.io.Serializable {

	private static final long serialVersionUID = -6791030491771383133L;
	private AvaliacaoQuestaoId id;
	private Avaliacao avaliacao;
	private Questao questao;
	private Character resposta;

	public AvaliacaoQuestao() {
	}

	public AvaliacaoQuestao(AvaliacaoQuestaoId id, Avaliacao avaliacao,
			Questao questao) {
		this.id = id;
		this.avaliacao = avaliacao;
		this.questao = questao;
	}

	public AvaliacaoQuestao(AvaliacaoQuestaoId id, Avaliacao avaliacao,
			Questao questao, Character resposta) {
		this.id = id;
		this.avaliacao = avaliacao;
		this.questao = questao;
		this.resposta = resposta;
	}

	@EmbeddedId
	@AttributeOverrides({
			@AttributeOverride(name = "avaliacaoId", column = @Column(name = "avaliacao_id", nullable = false)),
			@AttributeOverride(name = "questaoId", column = @Column(name = "questao_id", nullable = false)) })
	public AvaliacaoQuestaoId getId() {
		return this.id;
	}

	public void setId(AvaliacaoQuestaoId id) {
		this.id = id;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "avaliacao_id", nullable = false, insertable = false, updatable = false)
	public Avaliacao getAvaliacao() {
		return this.avaliacao;
	}

	public void setAvaliacao(Avaliacao avaliacao) {
		this.avaliacao = avaliacao;
	}

	@ManyToOne(fetch = FetchType.LAZY)
	@JoinColumn(name = "questao_id", nullable = false, insertable = false, updatable = false)
	public Questao getQuestao() {
		return this.questao;
	}

	public void setQuestao(Questao questao) {
		this.questao = questao;
	}

	@Column(name = "resposta", length = 1)
	public Character getResposta() {
		return this.resposta;
	}

	public void setResposta(Character resposta) {
		this.resposta = resposta;
	}

}
